package com.sky.service;

import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.entity.Employee;
import com.sky.result.PageResult;

import java.util.List;

public interface EmployeeService {

    /**
     * 员工登录
     * @param employeeLoginDTO
     * @return
     */
    Employee login(EmployeeLoginDTO employeeLoginDTO);
    /**
     * @description: 新增员工
     * @param: employeeDTO 员工信息
     * @return: void
     * @author STJ12138
     * @date: 2023/5/9 19:45
     */
    void save(EmployeeDTO employeeDTO);

    /**
     * @description: 员工分页查询
     * @param: employeePageQueryDTO 分页参数
     * @return: com.sky.result.PageResult
     * @author STJ12138
     * @date: 2023/5/10 9:32
     */
    PageResult findAll(EmployeePageQueryDTO employeePageQueryDTO);

    /**
     * @description:  启用或禁用员工账号
     * @param: status 账号状态
     * @param: id 员工id
     * @return: com.sky.result.Result
     * @author STJ12138
     * @date: 2023/5/10 18:41
     */
    void startOrStop(Integer status, Long id);

    /**
     * @description: 根据id查询员工
     * @param: id 员工id
     * @return: com.sky.result.Result<com.sky.entity.Employee>
     * @author STJ12138
     * @date: 2023/5/10 21:09
     */
    Employee findById(Long id);

    /**
     * @description: 修改员工
     * @param: employeeDTO 封装的修改信息
     * @return: com.sky.result.Result
     * @author STJ12138
     * @date: 2023/5/10 21:20
     */
    void update(EmployeeDTO employeeDTO);
}
